lst1 = [1, 2, 3, 4, 5]
print(lst1)
print(type(lst1))
print(lst1[0])
print(lst1[1])
print(lst1[-1])
print(lst1[-2:])
print(lst1 + [6, 7, 8])
# mutable -- 可变对象
# 可变对象可以在其 id() 保持固定的情况下改变其取值

lst1[3] = 5**3
print(lst1)
lst1.append(9)
print(lst1)
lst1.append(7**3)
print(lst1)

# Python 中的简单赋值绝不会复制数据。 当你将一个列表赋值给一个变量时，该变量将引用 现有的列表。你通过一个变量对列表所做的任何更改都会被引用它的所有其他变量看到
color = ['red', 'blue', 'green']
color_c = color
if color == color_c:
    print(1)
print(id(color))
print(id(color_c))
color_c.append('yellow')
print(color)
color.append('black')
print(color)
print(color_c)

# 列表的浅复制 切片操作返回包含请求元素的新列表。以下切片操作会返回列表的 浅拷贝
color_s = color[:]
if color == color_s:
    print(2)
else:
    print(3)
color_s.append('white')
print(color)
print(id( color))
print(id(color_s))

letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
print(letters[0:5])
letters[2:5] = ['cc', 'dd', 'ee']
print(letters)
letters[2:5] = []
print(letters)
letters[:] = []
print(letters)
print(len( letters))
a = [1, 2, 3, 4, 5]
b = ['a', 'b', 'c', 'd', 'e']
c = [a, b]
print(c[1][2])